Sequences, Nets, Filters, and Ultralimits

notes
mathematics
llm
Beyond sequences: nets, filters and ultralimits.
Author

Stephen J. Mildenhall

Published

2026-04-14

Modified

2026-04-14

In metric spaces, sequences do a remarkable amount of work. They characterize convergence, and they also detect closure: a point \(x\) lies in the closure of a set \(A\) if and only if there is a sequence in \(A\) converging to \(x\).

That fact fails in general topological spaces. There are spaces where \(x \in \overline{A}\), but no sequence in \(A\) converges to \(x\). The problem is that a sequence has only countably many stages, while the neighborhood structure around a point may be too large or too branched to be captured by a countable progression.

Nets are introduced to solve these problems.

Nets

A net in a space \(X\) is a function \[ \alpha \mapsto x_\alpha \] from a directed set \(D\) into \(X\). A directed set is a preorder with the property that for any two indices \(\alpha,\beta \in D\), there is some \(\gamma \in D\) with \(\gamma \ge \alpha\) and \(\gamma \ge \beta\). The idea is that the phrase “eventually” still makes sense: a property holds eventually if it holds for all \(\alpha \ge \alpha_0\) for some index \(\alpha_0\).

A sequence is just a net indexed by \(\mathbb{N}\). A function \(\mathbb{R} \to X\) can also be viewed as a net, using the usual order on \(\mathbb{R}\). But general nets allow much richer index sets than linear orders such as \(\mathbb{N}\) or \(\mathbb{R}\).

The key theorem is that in an arbitrary topological space, \[ x \in \overline{A} \quad\Longleftrightarrow\quad \text{there is a net } (a_\alpha) \text{ in } A \text{ with } a_\alpha \to x. \] Nets restore the perfect match between closure and convergence that sequences provide in metric spaces.

The product example: why \(\mathbb{R}\) is not enough

A good example comes from a large product space. Let \[ X = \{0,1\}^I \] with the product topology, where \(I\) is a set with cardinality strictly larger than \(|\mathbb{R}|\). Let \(0\) denote the point whose every coordinate is \(0\). A basic neighborhood of \(0\) is determined by choosing a finite set \(F \subset I\) and requiring that the coordinates in \(F\) be equal to \(0\). Outside \(F\), no restriction is imposed.

Now index by the finite subsets of \(I\), ordered by inclusion. For each finite \(F \subset I\), define \(x_F \in X\) by \[ x_F(i) = \begin{cases} 0, & i \in F, \\ 1, & i \notin F. \end{cases} \] Then \(x_F \to 0\). Indeed, fix any basic neighborhood of \(0\), determined by some finite set \(E \subset I\). Once \(F \supset E\), the point \(x_F\) has value \(0\) on every coordinate in \(E\), so \(x_F\) lies in that neighborhood. Hence the net converges.

The important point is that the directed set here is the family of finite subsets of \(I\), ordered by inclusion. That directed set is much wider than a linear order, and when \(|I| > |\mathbb{R}|\) it is also larger in cardinality than \(\mathbb{R}\). A net indexed by \((\mathbb{R},<)\) cannot generally play the same role. The topology requires us to keep track of arbitrarily many finite coordinate conditions, and a single real line is too narrow an index set for that task.

Why inclusion gives more flexibility

The product example already hints at an important conceptual difference. A linearly ordered index set such as \(\mathbb{N}\) or \(\mathbb{R}\) moves along a single chain. At each stage it can refine what came before, but only in one linear direction. A directed set ordered by inclusion can branch. It can combine information coming from different finite requirements that are not naturally arranged in a single line.

Another example makes the point. Let \(S\) be any infinite set, and let \(D\) be the collection of finite subsets of \(S\), ordered by inclusion. Think of an index \(F \in D\) as the stage at which we have decided to satisfy all requirements coming from the finite set \(F\).

Now imagine that for each \(s \in S\) we have a requirement \(R_s\), and that we want a process that is eventually compatible with every finite family of requirements. An inclusion-directed net does exactly that: given finite sets \(F\) and \(G\), we can pass to the larger stage \(F \cup G\), which simultaneously incorporates everything demanded by both.

That is the flexibility a linearly ordered set lacks. Along a chain, each stage has a unique past. In an inclusion-directed set, two unrelated finite demands can be merged by taking their union. The index set is therefore not merely large; it has the right combinatorial shape.

In topological terms, neighborhoods often behave exactly like finite bundles of conditions. Product neighborhoods specify finitely many coordinates. Weak neighborhoods in function spaces specify finitely many test functionals. Directed sets ordered by inclusion are built to absorb finitely many demands at once, and that is why they arise so naturally.

Branching beyond sequences

The same branching idea appears in a more abstract form if we index directly by neighborhoods. Let \(x\) be a point in a topological space, and let \(\mathcal{N}(x)\) be the set of neighborhoods of \(x\), ordered by reverse inclusion: \[ U \le V \quad \text{if and only if} \quad U \supseteq V. \] This is directed, because given neighborhoods \(U\) and \(V\), the intersection \(U \cap V\) is a neighborhood of \(x\) and is smaller than both in the reverse-inclusion order. If \(x \in \overline{A}\), we can choose a point \(a_U \in U \cap A\) for each neighborhood \(U\). Then the net \((a_U)\) converges to \(x\).

Again the point is not merely that there are many neighborhoods. It is that two separate demands, namely “lie in \(U\)” and “lie in \(V\),” can be combined by passing to \(U \cap V\). The directed structure records that finite conjunction of requirements. A linear order does not naturally encode that geometry.

Definitions and Extensions

To recap and extend our terminology.

A sequence is a map \[ x : \mathbb{N} \to X, \qquad n \mapsto x_n. \] Its convergence is phrased using the Frechet filter of cofinite subsets of \(\mathbb{N}\): the statement \(x_n \to x\) means that for every neighborhood \(U\) of \(x\), the set \[ \{n \in \mathbb{N} : x_n \in U\} \] is cofinite. So even ordinary sequence convergence is already filter language in disguise.

A net is a map \[ x : D \to X, \qquad \alpha \mapsto x_\alpha, \] where \(D\) is a directed set. The analogue of “cofinite” is “contains a tail.” For each \(\alpha_0 \in D\), define the tail \[ T_{\alpha_0} = \{\alpha \in D : \alpha \ge \alpha_0\}. \] Then \(x_\alpha \to x\) means that for every neighborhood \(U\) of \(x\), the set \[ \{\alpha \in D : x_\alpha \in U\} \] contains some tail \(T_{\alpha_0}\). A sequence is therefore just a net indexed by \(\mathbb{N}\) with its usual order.

A filter on a set \(I\) is a collection \(\mathcal{F}\) of subsets of \(I\) that we regard as “large,” subject to the standard closure axioms:

  • \(\varnothing \notin \mathcal{F}\);
  • if \(A,B \in \mathcal{F}\) then \(A \cap B \in \mathcal{F}\);
  • if \(A \in \mathcal{F}\) and \(A \subseteq B\), then \(B \in \mathcal{F}\).

The key point is that a filter forgets the indexing order and remembers only which sets count as eventual or large.

A sequence gives the cofinite filter on \(\mathbb{N}\). A net gives the tail filter on its directed set. In that sense, filters are more intrinsic than sequences or nets: they strip away the parametric presentation and retain only the largeness structure.

An ultrafilter is a maximal filter. Equivalently, it is a filter \(\mathcal{U}\) such that for every subset \(A \subseteq I\), exactly one of \(A\) and \(I \setminus A\) belongs to \(\mathcal{U}\). An ultrafilter makes a definite decision about every subset: large or not large, with no ambiguity left. That is why ultrafilters are more rigid than ordinary filters. A general filter may leave many sets undecided; an ultrafilter does not.

Given a space \(X\), a family \((x_i)_{i \in I}\) in \(X\), and an ultrafilter \(\mathcal{U}\) on \(I\), we say that \(x\) is the \(\mathcal{U}\)-limit, or ultralimit, of \((x_i)\) if for every neighborhood \(U\) of \(x\), \[ \{i \in I : x_i \in U\} \in \mathcal{U}. \] This looks exactly like ordinary convergence, except that “eventually” has been replaced by “on a \(\mathcal{U}\)-large set of indices.” If \(\mathcal{U}\) extends the tail filter of a net, then a \(\mathcal{U}\)-limit is a sharpened form of cluster-point selection for that net.

Let \((X_i)_{i \in I}\) be a family of sets, structures, or spaces, and let \(\mathcal{U}\) be an ultrafilter on \(I\). The ultraproduct is formed from the Cartesian product \(\prod_{i \in I} X_i\) by identifying two families \((x_i)\) and \((y_i)\) whenever \[ \{i \in I : x_i = y_i\} \in \mathcal{U}. \] If all \(X_i\) are the same set \(X\), the resulting object is an ultrapower of \(X\).

An ultraproduct is therefore not a convergence object in the same way a sequence, net, or filter is. It is a quotient object built by declaring two families equivalent when they agree on a large set of indices in the ultrafilter sense.

The progression \[ \text{sequence} \to \text{net} \to \text{filter} \to \text{ultrafilter} \to \text{ultralimit / ultraproduct} \] provides a conceptual unfolding.

  • A sequence uses a very specific index set and a very specific largeness notion, namely cofinite subsets of \(\mathbb{N}\).
  • A net keeps the idea of indexed approximation but allows general directed sets.
  • A filter abstracts away from the indexing and keeps only the largeness relation.
  • An ultrafilter makes that largeness relation maximal and decisive.
  • An ultralimit uses that decisive notion of largeness to define a generalized limit. An ultraproduct uses the same notion to build a quotient object.

The first four entries lie on a clean axis of increasing abstraction. The last two are constructions that become available once ultrafilters are in hand.

Summary Table

Object Underlying Idea Notion of “Large”
sequence \((x_n)\) indexed approximation along \(\mathbb{N}\) cofinite subsets of \(\mathbb{N}\)
net \((x_\alpha)\) indexed approximation along a directed set sets containing a tail
filter \(\mathcal{F}\) abstract largeness structure members of \(\mathcal{F}\)
ultrafilter \(\mathcal{U}\) maximal largeness structure every subset is decided large or small
ultralimit generalized convergence neighborhoods hit on a \(\mathcal{U}\)-large set
ultraproduct quotient modulo large-set agreement equality on a \(\mathcal{U}\)-large set

Ordinary convergence says a property holds for all sufficiently large indices. Nets replace “sufficiently large natural number” by “sufficiently large directed index.” Filters replace that again by an abstract notion of largeness. Ultrafilters push the abstraction to a maximal yes-or-no form. Ultralimits and ultraproducts then use that sharpened largeness notion to produce generalized limits and quotient objects.